import { AnimationComponent, Component, Node, _decorator } from 'cc';
import { StartPanelEvent } from './StartPanelEvent';

const { ccclass, property } = _decorator;

/** 开始面板事件 */
export enum StartPanelEventType {
	/** 游戏开始 */
	StartGame = 'event_start_game',

	/** 游戏开始-事件测试 */
	StartGame2 = 'event_start_game_2'
}

@ccclass('StartPanel')
export class StartPanel extends Component {
	@property(Node)
	tipNd: Node = null!;

	start() {
		// 使用tween实现缓动
		// tween(this.tipNd)
		// 	.to(0.5, { scale: v3(0.5, 1.1, 0) })
		// 	.to(0.5, { scale: v3(0.5, 0.9, 0) })
		// 	.repeatForever()
		// 	.start();

		// 使用 animation 组件实现动画
		const animation = this.tipNd.getComponent(AnimationComponent);
		if (animation) {
			animation.play();
		}
	}

	private onClickStart() {
		// 派发自定义事件，通过该接口派发的事件，会进入事件派发阶段
		this.node.dispatchEvent(new StartPanelEvent(StartPanelEventType.StartGame2, true, { info: 'start game' }));

		// 派发节点事件，不会冒泡
		this.node.emit(StartPanelEventType.StartGame);
	}
}
